<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 求一个三位数 ， 该三位数的和等于每位数字的阶乘之和

    /*  
      求喇叭花  glory
      参数： num 100-999
      返回值： arr 返回100-999之间所有的喇叭花的数组
    */
    function glory(num) {
      var arr = [];
      for (var i = 100; i <= num; i++) {
        var str = i.toString();
        var hund = parseInt(str.charAt(0));
        var ten = parseInt(str.charAt(1));
        var unit = parseInt(str.charAt(2));

        var sum = fator(hund) + fator(ten) + fator(unit);

        if (sum === i) {
          arr.push(i);
        }
      }
      return arr;
    }

    // 求阶乘
    function fator(n) {
      var sum = 1;
      for (var i = 1; i <= n; i++) {
        sum *= i;
      }
      return sum;
    }

    var arr = glory(999);
    // 145
    console.log('喇叭花数有' + arr);




  </script>
</body>

</html>